Skip to content

Navigation Menu

Sign in
Sign up

Feat: add ImmutableMap.sortedCopyOf - #8591

Open
DerrickUnleashed wants to merge 5 commits into
google:master from
DerrickUnleashed:immutable-map-sortedcopyof
Open

Feat: add ImmutableMap.sortedCopyOf #8591
DerrickUnleashed wants to merge 5 commits into
google:master from
DerrickUnleashed:immutable-map-sortedcopyof

Conversation

@DerrickUnleashed

@DerrickUnleashed DerrickUnleashed commented Aug 4, 2026

Copy link
Copy Markdown

Fixes #8552.
Adds two overloads, matching the existing ImmutableList.sortedCopyOf pattern:

  • sortedCopyOf(Map) - sorts by natural key order
  • sortedCopyOf(Comparator, Map) - sorts by a given key comparator
    The result is a regular ImmutableMap (hashing-based lookups), just with entries iterating in sorted order - handy when you want deterministic iteration without the O(log N) lookups of ImmutableSortedMap.
    Behaviour notes:
  • The sort is stable, so entries whose keys compare equal keep their input order.
  • If a key appears more than once, the last value wins, mirroring Builder.buildKeepingLast().
    Also includes a GWT super-source implementation and tests.

Returns an immutable map that iterates in sorted key order while still
using hashing for lookups, as an alternative to ImmutableSortedMap's
O(log N) lookups. The sort is stable, and duplicate keys are resolved
in favor of the last value, matching buildKeepingLast().
RELNOTES=`collect`: Added `ImmutableMap.sortedCopyOf`, which returns an
immutable map that is sorted by key.
Covers natural and comparator ordering, stability, null handling, and
duplicate-key behavior (last value wins).
RELNOTES=n/a

google-cla Bot commented Aug 4, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

DerrickUnleashed marked this pull request as ready for review August 4, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

1 more reviewer
@chytanvir1998-png chytanvir1998-png chytanvir1998-png approved these changes
Reviewers whose approvals may not affect merge requirements

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

P3 no SLO package=collect type=enhancement Make an existing feature better

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

ImmutableMap.sortedCopyOf

AltStyle によって変換されたページ (->オリジナル) /